<?php
$codigo_html = "";
$codigo_html .= "<div id='index'>";
$codigo_html .= $formulario->create(null, array("action"=>"arbol"));

$codigo_html .= $presentacion->titulo(array($html->image("19x19/recepciones.gif") . "Visualizacion en Mapa de los Datos Recibidos"));

$codigo_html .= $presentacion->redondearEsquinas("inicio");


$codigo_html .= $presentacion->redondearEsquinas("inicio");
$codigo_html .= "<table id='filtro' class='filtro' border='1'>";

$codigo_html .= "<tr>";
$codigo_html .= "<td>" . $formulario->rangoFechas('Filtro.Dato-fecha_hora', array('div'=>array('class'=>'rangoFechas'), 'type'=>'text', 'label'=>array('text'=>'Fecha', 'class'=>'etiqueta')), "</td><td>", true) . "</td>";
$codigo_html .= "</tr>";

$codigo_html .= "<tr>";
$codigo_html .= "<td><div class='etiqueta'>Lote</div>" . $formulario->input('Filtro.Dato-lote', array('type' => 'text', "label"=>false)) . "</td>";
$codigo_html .= "<td>&nbsp;</td>";
$codigo_html .= "</tr>";

$codigo_html .= "</table>";
	
$codigo_html .= $formulario->input('Filtro.accion', array('type'=>'hidden', 'id'=>'accion', 'value'=>""));
$codigo_html .= $formulario->button("", array("class"=>"limpiar", "onClick"=>"limpiarBusqueda('index');document.getElementById('accion').value='limpiar';form.submit();"));
$codigo_html .= $formulario->submit("", array("class"=>"buscar"));
$codigo_html .= $presentacion->redondearEsquinas("fin");

$codigo_html .= "\n<div>";
$codigo_html .= $this->renderElement('datos/arbol');
$codigo_html .= "\n</div>";

$codigo_html .= "\n<div style='padding:10px;'>";
$codigo_html .= $form->input("Mapa.precision", array("after"=>" Mayor precision, requiere una maquina mas potente.", "label"=>"Precision: ", "id"=>"precision", "type"=>"select", "options"=>$precisiones));
$codigo_html .= "\n</div>";

$codigo_html .= "\n<div style='padding:10px;'>";
$codigo_html .= $form->input("Mapa.parametro", array("label"=>"Parametro: ", "id"=>"parametro", "type"=>"select", "options"=>$parametros));
$codigo_html .= "\n</div>";

$codigo_html .= "\n<div style='visibility:hidden;'>";
$codigo_html .= $form->input("Mapa.unidad", array("label"=>false, "id"=>"unidad", "type"=>"select", "options"=>$unidades));
$codigo_html .= "\n</div>";
$codigo_html .= $form->input("XX.link", array("id"=>"link", "type"=>"hidden"));

$codigo_html .= "\n<div id='map' style='background-color:grey; float:left; width: 600px; height: 500px'></div>";
$codigo_html .= "\n<div id='referencias' style='padding-left:10px; float:left; width: 200px; height: 500px'></div>";

$codigo_html .= "<a href='abajo'></a>";

$codigo_html .= $formulario->end();
$codigo_html .= "\n</div> <!-- index -->";




	/**
	* La uso para probar arriba y abajo.
	*/
	$url = "http://" . $_SERVER['SERVER_NAME'] . router::url("/");

	if(strstr($url, "127.0.0.1")) {
		//local
		$codigo_html .= "\n<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA2XIlarYB9hkOnQR02Sa-vxQ2FqsGFP0HR2OHRnayTY0NQM0ezRR5B-TOya9aAupE5OF9hedya5Aksw' type='text/javascript'></script>";
	}
	else {
		//pgtdemo
		$codigo_html .= "\n<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA2XIlarYB9hkOnQR02Sa-vxTe-U7XROJCVcr0N2U5PpQPkFlOWRT8kFpl9T82wlAp-9IhV8xiQ1NBcA' type='text/javascript'></script>";
	}


	$codigo_html .= "\n" . $javascript->codeblock('



	/**
	* Crea un marcador.
	*/
	function crearMarcador(punto, icono, html, lat, lng, fecha, hora, id) {
		var marcador = new GMarker(punto, {icon: icono, draggable: true});

		var parametro = document.getElementById("parametro");
		for(var i=0;i<parametro.options.length;i++) {
			if(parametro.options[i].selected) {
				var texto = parametro.options[i].innerHTML;
				break;
			}
		}

		parametro = document.getElementById("unidad");
		var unidad = parametro.options[i].innerHTML;

		GEvent.addListener(marcador, "click", function() {
			var contenido = fecha + " " + hora + "<br />";
			contenido = contenido + "Latitud: " + lat + "<br />";
			contenido = contenido + "Longitud: " + lng + "<br />";
			contenido = contenido + texto + ": " + html + " " + unidad + "<br />";
			contenido = contenido + "<a target=\'_blank\' href=\'view/detalleDato:" + id + "\'>Ampliar</a>";
			marcador.openInfoWindowHtml(contenido);
		});

		GEvent.addListener(marcador, "dragstart", function() {
			document.getElementById("CorreccionLatHidden").value = marcador.getPoint().lat();
			document.getElementById("CorreccionLonHidden").value = marcador.getPoint().lng();
			GMarker.prototype.setImage.call(marcador, "' . $url . 'img/marcadores/bigmarker.png");
		});

		GEvent.addListener(marcador, "dragend", function() {
		  //document.getElementById("CorreccionLat").value = document.getElementById("CorreccionLatHidden").value - marcador.getPoint().lat();
		  //document.getElementById("CorreccionLon").value = document.getElementById("CorreccionLonHidden").value - marcador.getPoint().lng();
		  document.getElementById("CorreccionLon").value = document.getElementById("CorreccionLonHidden").value - marcador.getPoint().lng();
		  document.getElementById("CorreccionLat").value = document.getElementById("CorreccionLatHidden").value - marcador.getPoint().lat();
		});

		return marcador;
	}

	/**
	* Esta funcion busca "en teoria" la url de donde descargar las partes del mapa.
	* El mio no necesita y retorno nada.
	*/
	CustomGetTileUrl=function(a,b){
		return "";
	}

	function inicio(centroA, centroB, referenciasHtml, archivo) {


		var referencias = document.getElementById("referencias");
		referencias.innerHTML = "Referencias:<br/><br/>" + referenciasHtml;
		var ruta = "' . $url . '";
		var custommap = null;

		if (GBrowserIsCompatible()) {

			/**
			* Configuro el mapa de acuerdo a mis necesidades.
			*/
			var map = new GMap2(document.getElementById("map"));
			map.removeMapType(G_NORMAL_MAP);
			map.removeMapType(G_HYBRID_MAP);
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());

			/**
			* Creo mi propio tipo personalizado de mapa.
			*/
      		var copyright = new GCopyright(1,
			new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180) ),
			14, "By <a href=\"http://www.pragmatia.com\">Pragmatia.com</a>");

			var copyrightCollection = new GCopyrightCollection("www.exactagro.com.ar - ");
			copyrightCollection.addCopyright(copyright);

			var tilelayers = [new GTileLayer(copyrightCollection,10,19)];
			tilelayers[0].getTileUrl = CustomGetTileUrl;

			custommap = new GMapType(tilelayers, new GMercatorProjection(20), "En Blanco", {alt:"Mapa en Blanco"});
			map.addMapType(custommap);
			map.setCenter(new GLatLng(centroA, centroB), 14, custommap);

			/**
			* Inicio el mapa con un tipo y un punto central.
			*/
			map.setCenter(new GLatLng(centroA, centroB), 14);
			map.enableDoubleClickZoom();
			map.setMapType(G_SATELLITE_MAP);

			/**
			* Restrinjo los niveles de zoom.
			*/
			var mt = map.getMapTypes();
			for (var i=0; i < mt.length; i++) {
				mt[i].getMaximumResolution = function() {
					return 19;
				}
			}

			/**
			* Agrego un evento al ZOOM level para poder interceptar cuando el zoom cambia.
			*/
			GEvent.addListener(map, "zoomend", function(oldzoom, newzoom) {
				if(newzoom >= 15) {
					map.setMapType(custommap);
					map.removeMapType(G_SATELLITE_MAP);
					var ovmap=ovcontrol.getOverviewMap();
					ovmap.setMapType(G_SATELLITE_MAP);
				}
				else {
					map.addMapType(G_SATELLITE_MAP);
					map.setMapType(G_SATELLITE_MAP);
				}

				/**
				* A mas de zoom 18 oculto el mapa overview porque ya no hay vista de satelite.
				*/
				var elDiv=document.getElementById("map_overview");
				if(newzoom >= 18) {
					elDiv.style.visibility = "hidden";
					elDiv.style.display = "none";
				}
				else {
					elDiv.style.visibility = "visible";
					elDiv.style.display = "inline";
				}
			});


			i0 = new GIcon(G_DEFAULT_ICON, ruta + "img/marcadores/verdeclaro.png");
			i0.shadow = "";
			i1 = new GIcon(G_DEFAULT_ICON, ruta + "img/marcadores/verde.png");
			i1.shadow = "";
			i2 = new GIcon(G_DEFAULT_ICON, ruta + "img/marcadores/amarillo.png");
			i2.shadow = "";
			i3 = new GIcon(G_DEFAULT_ICON, ruta + "img/marcadores/naranja.png");
			i3.shadow = "";
			i4 = new GIcon(G_DEFAULT_ICON, ruta + "img/marcadores/rojo.png");
			i4.shadow = "";
			var gmarkers = [];

			/**
			* Leo el archivo de texto donde estan los datos.
			*/
			procesarArchivoTexto = function(doc) {
				/**
				* Parto el archivo en lineas.
				*/
				lines = doc.split("\n");
				for (var i=0; i<lines.length; i++) {
					if (lines[i].length > 1) {
						/**
						* Parto el archivo en campos separador por ,
						*/
						parts = lines[i].split(",");
						var lat = parseFloat(parts[0]);
						var lng = parseFloat(parts[1]);
						var punto = new GLatLng(lat,lng);
						var valor = parts[2];
						var fecha = parts[3];
						var hora = parts[4];
						var id = parts[5];
						var ic = parts[6];
						if(ic == 0) {
							var marker = crearMarcador(punto, i0, valor, lat, lng, fecha, hora, id);
						}
						else if(ic == 1) {
							var marker = crearMarcador(punto, i1, valor, lat, lng, fecha, hora, id);
						}
						else if(ic == 2) {
							var marker = crearMarcador(punto, i2, valor, lat, lng, fecha, hora, id);
						}
						else if(ic == 3) {
							var marker = crearMarcador(punto, i3, valor, lat, lng, fecha, hora, id);
						}
						else if(ic == 4) {
							var marker = crearMarcador(punto, i4, valor, lat, lng, fecha, hora, id);
						}
						else {
							continue;
						}
						gmarkers.push(marker);
					}
				}

				var mm = new GMarkerManager(map);
				mm.addMarkers(gmarkers,0,17);
				mm.refresh();
			}


 		GDownloadUrl(ruta + "files/" + archivo, procesarArchivoTexto);



		/**
		* Agrego el mapita (overview).
		*/
		var ovcontrol = new GOverviewMapControl(new GSize(200,200));
		map.addControl(ovcontrol);


		}//GBrowserIsCompatible
	}//funcion inicio

');


echo $codigo_html;

?>